import axios from "axios";
import { ElMessage } from "element-plus";

const request = axios.create({
    baseURL: 'http://localhost:8080/api/v1',
    timeout: 5000
});

// 请求拦截器
request.interceptors.request.use(config => {
    console.log('请求配置:', config); // 打印请求配置信息
    const token = localStorage.getItem("token");
    if (token) {
        config.headers["Authorization"] = `Bearer ${token}`;
    }
    return config;
}, error => {
    console.error('请求拦截器错误:', error); // 打印请求拦截器错误
    return Promise.reject(error);
});

// 响应拦截器
request.interceptors.response.use(response => {
    console.log('响应状态码:', response.status); // 打印响应状态码
    console.log('响应数据:', response.data); // 打印响应数据
    if (response.status === 200) {
        return response.data;
    } else {
        // 根据不同状态码给出更具体提示
        if (response.status === 401) {
            ElMessage.error('未授权，请登录');
        } else if (response.status === 404) {
            ElMessage.error('请求的资源未找到');
        } else {
            ElMessage.error(`请求错误，状态码: ${response.status}`);
        }
        return Promise.reject(response);
    }
}, error => {
    console.error('响应拦截器错误:', error); // 打印响应拦截器错误
    ElMessage.error('网络请求失败，请检查网络连接');
    return Promise.reject(error);
});

export default request;